package site.util;

import com.opensymphony.xwork2.ActionInvocation;
import site.annotations.LoginIgnoreMethod;

import javax.xml.bind.DatatypeConverter;

/**
 * 通用方法
 */
public class CommonUtils {
    /**
     * 获取上传图片保存路径
     * @return 上传图片路径
     */
    public static String getImgUploadPath() {
        return Struts2Utils.getSession().getServletContext().getRealPath("/") + "/images/upload/";
    }

    /**
     *
     * @param invocation
     * @return
     * @throws NoSuchMethodException
     */
    public static boolean isLoginVerifyMethod(ActionInvocation invocation) throws NoSuchMethodException {
        String method = invocation.getProxy().getMethod();
        LoginIgnoreMethod annotation = invocation.getAction().getClass().getMethod(method, null)
                .getAnnotation(LoginIgnoreMethod.class);
        if (annotation != null) {
            return true;
        }
        return false;
    }

    /**
     * 将字节数组转换成BASE64字符串。
     * @param array 字节数组。
     * @return BASE64字符串。
     */
    public static String toBase64(byte[] array) {
        return DatatypeConverter.printBase64Binary(array);
    }

    /**
     * 将Base64字符串转换成字节数组。
     * @param s Base64字符串。
     * @return 字节数组。
     */
    public static byte[] fromBase64(String s) {
        return DatatypeConverter.parseBase64Binary(s);
    }
}
